
R version 2.9.2 (2009-08-24)
Copyright (C) 2009 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> kamatlab<<-0.08
> volatilitas=0.23
> dt=1/360
> t_t=0.25
> n=trunc(t_t/dt)
> s<-c()
> x<-680     ## A ktsi r
> B=700  ## a kszbrtk, amennyiben ezt az rtket elri a rszvnyrfolyam akkor az    opci elrtktelenedik
> f<-c()   ## a kifizetsfggvnyt trol lista deklarci
> epszilon<-c()   # a normlis eloszlst trol lista deklarci
> MonteCarlo<-function(elemszam){ 
+ for (i in 1:elemszam){
+ epszilon<-rnorm(n,0,1) # normlis eloszls generlsa
+ 
+ s[1]<-661# a kezdeti rszvnyrfolyam
+ for (j in 1:(n-1)){
+ uj<<-(kamatlab-0.5*volatilitas^2)*dt+volatilitas*sqrt(dt)*epszilon[j]
+ s[j+1]<-s[j]*exp(uj)## itt a rszvnyr generlst ciklussal valsthat meg, hiszen itt nem elg lejratkor ismernnk a rszvnyrat, ahhoz hogy a kifizetsfggvnyt meghatrozzuk
+ }
+ if (max(s)<B)#ha ri el az rfolyam a kszbrat akkor a kifizets fggvny 
+ f[i]<-max(0,x-s[n]) else    #rtke a szoksos eurpai kifizetsfggvny
+ f[i]=0#klnben elrtktelenedik az opci
+  }
+ atlag<-mean(f) #tlagoljuk a kifizetsfggvnyeket
+ 
+ opciosdij=(exp(-kamatlab*t_t)*atlag)#kifizetsfggvny diszkontlsa
+ opciosdij} 
> MonteCarlo(1000)
[1] 25.74639
> MonteCarlo(5000)
[1] 26.98376
> MonteCarlo(10000)
[1] 25.95118
> MonteCarlo(30000)
[1] 25.88121
>

> library(fOptions) #betlti az fOption csomagot.
Loading required package: timeDate
Loading required package: timeSeries
Loading required package: fBasics
Loading required package: MASS
Rmetrics Package fOptions (2100.76) loaded.
>       
> print('A formulval kapott r:')
[1] "A formulval kapott r:"
> 
> GBSOption(TypeFlag = "p", S = 661, X = 680, Time = 1/4, r = 0.08, b = 0.08, sigma = volatilitas) @price
[1] 48.20279
> 
> 
